package com.thx.workfloworguser.dao;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Repository;

import com.thx.common.orm.HibernateBaseDao;
import com.thx.user.model.User;
import com.thx.workfloworguser.model.UserImpl;


/**
 *  @Project       : thx-workflow-orguser
 *  @Program Name  : com.thx.workfloworguser.dao.UserImplDao.java
 *  @Class Name    : UserImplDao
 *  @Description   : 类描述
 *  @Author        : calonlan
 *  @Creation Date : 2015年1月23日 下午3:14:39
 *  @ModificationHistory
 *  Who        When          What
 *  --------   ----------    -----------------------------------
 *  username   2015年1月23日       TODO
 */
@Repository
public class UserImplDao extends HibernateBaseDao<UserImpl>{

	public List<User> findByDeptIds() {

		return null;
	}


	/**
	 *  @Description    : 得到当前部门的领导
	 *  @Method_Name    : findManagersByDeptId
	 *  @param deptId
	 *  @return
	 *  @return         : List<User>
	 *  @Creation Date  : 2015年4月29日 上午11:01:13
	 *  @version        : v1.00
	 *  @Author         : calonlan

	 *  @Update Date    :
	 *  @Update Author  :
	 */
	public List<User> findManagersByDeptId(String deptId) {
		String sql = "select * from org_user ou, org_user_roles our, org_role t "
				+ " where t.role_name <> '员工' and t.role_id=our.roles and our.users = ou.user_id and ou.dept_id = ?";
		List<com.thx.user.model.User> list =  createSqlQuery(sql, deptId).addEntity(com.thx.user.model.User.class).list();
		return list;
	}


	public List<User> loadByRoleId(String roleId) {
		return getUserList();
	}

	public List<User> getUsersByRoleAndDept(String roleId, String depId) {
		return getUserList();
	}

	public List<User> getUsersByRoleAndDept(String[] roleIds, String[] depIds) {
		return getUserList();
	}

	public List<User> getManagersByUser(String userId, String level) {
		return getUserList();
	}

	public List<User> getManagersByDept(String depId, String level) {
		return getUserList();
	}

	public List<User> getDownDepsByUser(String userId) {
		return getUserList();
	}

	public List<User> getDownDepMgrs(String userId) {
		return getUserList();
	}

	public List<User> getOthersOfDept(String userId) {
		return getUserList();
	}

	public List<User> getSuperiors(String userId) {
		return getUserList();
	}

	public List<User> getJuniors(String userId) {
		return getUserList();
	}

	public List<User> getUsersByRoleAndDepType(String[] roleIds,
			String[] depTIds) {

		return getUserList();
	}

	public static List<User> getUserList(){
		List<User> list = new ArrayList<User>();
		User u1 = new User();
		u1.setUserId("user001");
		u1.setUserName("zhangshan");
		list.add(u1);
		User u2 = new User();
		u2.setUserId("user002");
		u2.setUserName("lisi");
		list.add(u2);
		return list;
	}

}
